\chapter{总结与展望}\label{chap:summary}

% 近年来，卷积神经网络为代表的深度学习算法在许多领域中取得了巨大的突破，如模式识别、图像处理、计算机视觉等。由于 FPGA 低功耗、低延时、可重配置的特性，适合应用于一些对功耗有限制的小型流式应用场景。目前限制 FPGA 在深度学习领域无法大规模应用的主要有以下的两点：

% \begin{enumerate}
%     \item 开发效率低。随着高层次综合技术（HLS）的不断成熟，已经可以使用 C、C++ 等高级语言进行 FPGA 算法开发，该问题正逐步被解决；

%     \item 通用性差，对硬件资源要求高。受制于 FPGA 芯片资源的限制，低成本的 FPGA 芯片往往无法实现一些复杂的算法。
% \end{enumerate}

% 因此本文设计的一种使用 RISC-V 处理器的异构卷积神经网络算法加速系统，将 CNN 网络进行部分展开，展开程度可以根据具体 FPGA 芯片资源的丰富程度灵活调整，同时使用了一个 RISC-V 处理器来完成一些不适合放在 FPGA 上完成的计算任务，在保证了运算速度的提升下，架构的通用性也得到了保证。

% 本课题对使用 FPGA 进行卷积神经网络运算加速做了一定的研究，但由于时间的限制，任然有许多可以进一步研究的地方：

% \begin{enumerate}
%     \item 优化 RISC-V SOC 的设计，将加速器的调用设计成专用指令的形式，进一步提升加速器使用的通用性和便利性；

%     \item 使用多 FPGA 构建大规模协同运行的 CNN 加速网络，使得 CNN 加速的效果不在受限于单个 FPGA 的资源，从而实现一些更复杂的模型；

%     \item 使用 FPGA 的可重构技术，将 CNN 网络进行分片，相当于对局部的 CNN 网络进行了更大维度的展开，从而提升 CNN 网络的并行性，进一步优化加速器的时延。
% \end{enumerate}


目标检测算法在嵌入式领域有着广泛的应用，比如自动驾驶、无人机图像识别等，这些应用场景不仅对准确度和速度有要求，对功耗也有限制。传统的目标检测算法通常运行在高功耗的 GPU 上，并不适合应用在这些低成本低功耗的嵌入式场景中。本文设计了一种运行在 FPGA 上的异构卷积神经网络算法加速系统，将 CNN 网络进行部分展开，展开程度可以根据具体 FPGA 芯片资源的丰富程度灵活调整，同时使用了一个 RISC-V 软核来完成一些不适合在 FPGA 上完成的计算任务。从而实现了在保证准确度的情况下，使用低成本低功耗的嵌入式平台进行目标检测。

本课题对使用 FPGA 进行卷积神经网络运算加速做了一定的研究，但由于时间的限制，任然有许多可以进一步研究的地方：

\begin{enumerate}
    \item 优化 RISC-V SOC 的设计，将加速器的调用设计成专用指令的形式，进一步提升加速器使用的通用性和便利性；

    \item 使用多 FPGA 构建大规模协同运行的 CNN 加速网络，使得 CNN 加速的效果不在受限于单个 FPGA 的资源，从而实现一些更复杂的模型；

    \item 使用 FPGA 的可重构技术，将 CNN 网络进行分片，相当于对局部的 CNN 网络进行了更大维度的展开，从而提升 CNN 网络的并行性，进一步优化加速器的时延。
\end{enumerate}